<?php
//	 Session Encryption by Ari Kuorikoski <ari.kuorikoski@finebyte.com>
class MD5Crypt{
    function keyED($txt,$encrypt_key)
    {
        $encrypt_key = md5($encrypt_key);
        $ctr=0;
        $tmp = "";
        for ($i=0;$i<strlen($txt);$i++){
            if ($ctr==strlen($encrypt_key)) $ctr=0;
            $tmp.= substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1);
            $ctr++;
        }
        return $tmp;
    }

    function Encrypt($txt,$key)
    {
        srand((double)microtime()*1000000);
        $encrypt_key = md5(rand(0,32000));
        $ctr=0;
        $tmp = "";
        for ($i=0;$i<strlen($txt);$i++)
        {
            if ($ctr==strlen($encrypt_key)) $ctr=0;
            $tmp.= substr($encrypt_key,$ctr,1) .
            (substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1));
            $ctr++;
        }
        return base64_encode($this->keyED($tmp,$key));
    }

    function Decrypt($txt,$key)
    {
        $txt = $this->keyED(base64_decode($txt),$key);
        $tmp = "";
        for ($i=0;$i<strlen($txt);$i++){
            $md5 = substr($txt,$i,1);
            $i++;
            $tmp.= (substr($txt,$i,1) ^ $md5);
        }
        return $tmp;
    }

    function RandPass()
    {
        $randomPassword = "";
        srand((double)microtime()*1000000);
        for($i=0;$i<8;$i++)
        {
            $randnumber = rand(48,120);

            while (($randnumber >= 58 && $randnumber <= 64) || ($randnumber >= 91 && $randnumber <= 96))
            {
                $randnumber = rand(48,120);
            }

            $randomPassword .= chr($randnumber);
        }
        return $randomPassword;
    }

}


class SHA1Crypt{

    function keyED($txt,$encrypt_key)
    {

        $encrypt_key = sha1($encrypt_key);
        $ctr=0;
        $tmp = "";

        for ($i=0;$i<strlen($txt);$i++){
            if ($ctr==strlen($encrypt_key)) $ctr=0;
            $tmp.= substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1);
            $ctr++;
        }
        return $tmp;

    }



    function Encrypt($txt,$key)
    {

        srand((double)microtime()*1000000);
        $encrypt_key = sha1(rand(0,32000));
        $ctr=0;
        $tmp = "";

        for ($i=0;$i<strlen($txt);$i++)

        {

            if ($ctr==strlen($encrypt_key)) $ctr=0;

            $tmp.= substr($encrypt_key,$ctr,1) .

            (substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1));

            $ctr++;

        }

        return base64_encode($this->keyED($tmp,$key));

    }



    function Decrypt($txt,$key)
    {

        $txt = $this->keyED(base64_decode($txt),$key);

        $tmp = "";

        for ($i=0;$i<strlen($txt);$i++){

            $sha1 = substr($txt,$i,1);

            $i++;

            $tmp.= (substr($txt,$i,1) ^ $sha1);

        }

        return $tmp;
    }



    function RandPass()
    {
        $randomPassword = "";
        srand((double)microtime()*1000000);

        for($i=0;$i<8;$i++)
        {

            $randnumber = rand(48,120);

            while (($randnumber >= 58 && $randnumber <= 64) || ($randnumber >= 91 && $randnumber <= 96))
            {
                $randnumber = rand(48,120);
            }

            $randomPassword .= chr($randnumber);
        }

        return $randomPassword;

    }



}
?>